/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package br.edu.provaperguntas;

import br.edu.pergunta.Pergunta;
import br.edu.prova.Prova;
import java.io.Serializable;
import java.util.Objects;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

/**
 *
 * @author 'Pedro
 */
@Entity
public class ProvaPerguntas implements Serializable, Comparable<ProvaPerguntas>{
    
    @Id
    @GeneratedValue
    private int id;
    
    @ManyToOne
    private Pergunta pergunta;
    
    private double valorQuestao;
    
    @ManyToOne
    private Prova prova;

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }

    /**
     * @return the pergunta
     */
    public Pergunta getPergunta() {
        return pergunta;
    }

    /**
     * @param pergunta the pergunta to set
     */
    public void setPergunta(Pergunta pergunta) {
        this.pergunta = pergunta;
    }

    /**
     * @return the valorQuestao
     */
    public double getValorQuestao() {
        return valorQuestao;
    }

    /**
     * @param valorQuestao the valorQuestao to set
     */
    public void setValorQuestao(double valorQuestao) {
        this.valorQuestao = valorQuestao;
    }

    /**
     * @return the prova
     */
    public Prova getProva() {
        return prova;
    }

    /**
     * @param prova the prova to set
     */
    public void setProva(Prova prova) {
        this.prova = prova;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 41 * hash + this.id;
        hash = 41 * hash + Objects.hashCode(this.pergunta);
        hash = 41 * hash + (int) (Double.doubleToLongBits(this.valorQuestao) ^ (Double.doubleToLongBits(this.valorQuestao) >>> 32));
        hash = 41 * hash + Objects.hashCode(this.prova);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final ProvaPerguntas other = (ProvaPerguntas) obj;
        if (this.id != other.id) {
            return false;
        }
        if (!Objects.equals(this.pergunta, other.pergunta)) {
            return false;
        }
        if (Double.doubleToLongBits(this.valorQuestao) != Double.doubleToLongBits(other.valorQuestao)) {
            return false;
        }
        if (!Objects.equals(this.prova, other.prova)) {
            return false;
        }
        return true;
    }

    @Override
    public int compareTo(ProvaPerguntas t) {
        return pergunta.compareTo(t.pergunta);
    }
    
    
    
}
